Сегодня хочу показать вам один из приёмов, который часто выручает в реальной разработке на C++ — оборачивание C API в безопасные RAII-объекты.
Многие библиотеки на C (например, OpenSSL, SQLite, libpng) требуют вручную управлять ресурсами — открывать, закрывать, аллоцировать и освобождать. Это источник ошибок: забыли free(), упустили close(), получили утечку памяти или файлового дескриптора.
В C++ мы можем обернуть такие ресурсы в класс с аккуратным деструктором:
class FileHandle { public: explicit FileHandle(FILE* file) : file_(file) {} ~FileHandle() { if (file_) { fclose(file_); } }
FILE* get() const { return file_; }
private: FILE* file_; };
Теперь, даже если функция выбросит исключение или произойдет выход из области видимости, файл закроется автоматически!
Такие классы легко комбинировать с std::unique_ptr через кастомные делетеры для ещё большей безопасности.
Не забывайте: RAII (Resource Acquisition Is Initialization) — один из важнейших паттернов для профессионального C++.
Сегодня хочу показать вам один из приёмов, который часто выручает в реальной разработке на C++ — оборачивание C API в безопасные RAII-объекты.
Многие библиотеки на C (например, OpenSSL, SQLite, libpng) требуют вручную управлять ресурсами — открывать, закрывать, аллоцировать и освобождать. Это источник ошибок: забыли free(), упустили close(), получили утечку памяти или файлового дескриптора.
В C++ мы можем обернуть такие ресурсы в класс с аккуратным деструктором:
class FileHandle { public: explicit FileHandle(FILE* file) : file_(file) {} ~FileHandle() { if (file_) { fclose(file_); } }
FILE* get() const { return file_; }
private: FILE* file_; };
Теперь, даже если функция выбросит исключение или произойдет выход из области видимости, файл закроется автоматически!
Такие классы легко комбинировать с std::unique_ptr через кастомные делетеры для ещё большей безопасности.
Не забывайте: RAII (Resource Acquisition Is Initialization) — один из важнейших паттернов для профессионального C++.
Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.
How To Find Channels On Telegram?
There are multiple ways you can search for Telegram channels. One of the methods is really logical and you should all know it by now. We’re talking about using Telegram’s native search option. Make sure to download Telegram from the official website or update it to the latest version, using this link. Once you’ve installed Telegram, you can simply open the app and use the search bar. Tap on the magnifier icon and search for a channel that might interest you (e.g. Marvel comics). Even though this is the easiest method for searching Telegram channels, it isn’t the best one. This method is limited because it shows you only a couple of results per search.